package com.zhihao.zhihaopicturebackend.manager.auth;

import cn.dev33.satoken.stp.StpLogic;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.stereotype.Component;

/**
 * reason：用户创建的团队空间中也有admin/user/viewer等角色权限，与整个项目中的整个项目中的用户/管理员身份有重复，需要相对保持独立
 *
 * sa-token多账号体系-门面/外观模式解决方案
 *
 * StpLogic 门面类，管理项目中所有的 StpLogic 账号体系
 * 添加 @Component 注解的目的是确保静态属性 DEFAULT 和 SPACE 被初始化
 */
@Component
public class StpKit {

    // 团队空间权限
    public static final String SPACE_TYPE = "space";

    /**
     * 默认原生会话对象，项目中目前没使用到(还是用原来自定义注解+AOP切面实现鉴权user/admin)
     */
    public static final StpLogic DEFAULT = StpUtil.stpLogic;

    /**
     * Space 会话对象，管理 Space 表所有账号的登录、权限认证
     *  专门用于Space团队空间的权限校验  StpKit.SPACE.login()...
     */
    public static final StpLogic SPACE = new StpLogic(SPACE_TYPE);
}